package com.gaohe.hotal.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gaohe.common.annotation.Excel;
import com.gaohe.common.core.domain.BaseEntity;

/**
 * 客户预订对象 hot_guest_reservation
 * 
 * @author ruoyi
 * @date 2025-07-02
 */
public class HotGuestReservation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户预订ID */
    private Long reservationId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String reservationNo;

    /** 渠道 */
    @Excel(name = "渠道")
    private String channel;

    /** 预订客户id */
    @Excel(name = "预订客户id")
    private Long guestId;

    /** 预订卡号 */
    @Excel(name = "预订卡号")
    private String guestNo;

    /** 预订手机号 */
    @Excel(name = "预订手机号")
    private String guestPhone;

    /** 房间类型id */
    @Excel(name = "房间类型id")
    private Long roomTypeId;

    /** 预订房间数 */
    @Excel(name = "预订房间数")
    private Long reservationNum;

    /** 押金 */
    @Excel(name = "押金")
    private BigDecimal deposit;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal money;

    /** 房间ids */
    @Excel(name = "房间ids")
    private Long roomIds;

    /** 入住客人信息(json) */
    @Excel(name = "入住客人信息(json)")
    private String guestDetail;

    /** 预计入住日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计入住日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkInTime;

    /** 预计退房日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计退房日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkOutTime;

    /** 入住类型(普通/钟点) */
    @Excel(name = "入住类型(普通/钟点)")
    private String checkType;

    /** 时长 */
    @Excel(name = "时长")
    private Long duration;

    /** 预订状态 */
    @Excel(name = "预订状态")
    private String status;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reservationTime;

    /** 操作人id */
    @Excel(name = "操作人id")
    private String userId;

    /** 删除标志（0代表存在 2代表删除） */
    private Long delFlag;

    public void setReservationId(Long reservationId) 
    {
        this.reservationId = reservationId;
    }

    public Long getReservationId() 
    {
        return reservationId;
    }

    public void setReservationNo(String reservationNo) 
    {
        this.reservationNo = reservationNo;
    }

    public String getReservationNo() 
    {
        return reservationNo;
    }

    public void setChannel(String channel) 
    {
        this.channel = channel;
    }

    public String getChannel() 
    {
        return channel;
    }

    public void setGuestId(Long guestId) 
    {
        this.guestId = guestId;
    }

    public Long getGuestId() 
    {
        return guestId;
    }

    public void setGuestNo(String guestNo) 
    {
        this.guestNo = guestNo;
    }

    public String getGuestNo() 
    {
        return guestNo;
    }

    public void setGuestPhone(String guestPhone) 
    {
        this.guestPhone = guestPhone;
    }

    public String getGuestPhone() 
    {
        return guestPhone;
    }

    public void setRoomTypeId(Long roomTypeId) 
    {
        this.roomTypeId = roomTypeId;
    }

    public Long getRoomTypeId() 
    {
        return roomTypeId;
    }

    public void setReservationNum(Long reservationNum) 
    {
        this.reservationNum = reservationNum;
    }

    public Long getReservationNum() 
    {
        return reservationNum;
    }

    public void setDeposit(BigDecimal deposit) 
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit() 
    {
        return deposit;
    }

    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }

    public void setRoomIds(Long roomIds) 
    {
        this.roomIds = roomIds;
    }

    public Long getRoomIds() 
    {
        return roomIds;
    }

    public void setGuestDetail(String guestDetail) 
    {
        this.guestDetail = guestDetail;
    }

    public String getGuestDetail() 
    {
        return guestDetail;
    }

    public void setCheckInTime(Date checkInTime) 
    {
        this.checkInTime = checkInTime;
    }

    public Date getCheckInTime() 
    {
        return checkInTime;
    }

    public void setCheckOutTime(Date checkOutTime) 
    {
        this.checkOutTime = checkOutTime;
    }

    public Date getCheckOutTime() 
    {
        return checkOutTime;
    }

    public void setCheckType(String checkType) 
    {
        this.checkType = checkType;
    }

    public String getCheckType() 
    {
        return checkType;
    }

    public void setDuration(Long duration) 
    {
        this.duration = duration;
    }

    public Long getDuration() 
    {
        return duration;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setReservationTime(Date reservationTime) 
    {
        this.reservationTime = reservationTime;
    }

    public Date getReservationTime() 
    {
        return reservationTime;
    }

    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }

    public void setDelFlag(Long delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Long getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("reservationId", getReservationId())
            .append("reservationNo", getReservationNo())
            .append("channel", getChannel())
            .append("guestId", getGuestId())
            .append("guestNo", getGuestNo())
            .append("guestPhone", getGuestPhone())
            .append("roomTypeId", getRoomTypeId())
            .append("reservationNum", getReservationNum())
            .append("deposit", getDeposit())
            .append("money", getMoney())
            .append("roomIds", getRoomIds())
            .append("guestDetail", getGuestDetail())
            .append("checkInTime", getCheckInTime())
            .append("checkOutTime", getCheckOutTime())
            .append("checkType", getCheckType())
            .append("duration", getDuration())
            .append("status", getStatus())
            .append("reservationTime", getReservationTime())
            .append("userId", getUserId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
